package ace.module.account.core.impl.service.callback.auth;

import ace.module.account.oauth2.api.model.input.IamOauth2CallbackAuthenticationInput;
import ace.module.oauth2.server.api.callback.model.input.Oauth2AceAuthenticationCallbackInput;
import ace.module.oauth2.server.api.model.dto.ext.Oauth2AceAuthResultDto;

/**
 * @author caspar
 * @date 2023/3/16 9:27
 */
public interface Oauth2AuthenticationCallbackService {

  /**
   * oauth2 认证回调，直接根据参数进行相关账户应用id.
   *
   * @param input 参数
   * @return 认证结果
   */
  Oauth2AceAuthResultDto authentication(IamOauth2CallbackAuthenticationInput input);

  /**
   * oauth2 认证回调，根据idOfClient参数,查询配置对应的账户应用进行认证.
   *
   * @param input 参数
   * @return 认证结果
   */
  Oauth2AceAuthResultDto authenticationByConfig(Oauth2AceAuthenticationCallbackInput input);
}
